\chapter{绪论}
\section{前言}
本次设计题目来源于在校期间曾多次遇到教师上课时需要发送一些文件给学生安装
以便更好的进行教学安排，但在文件较大时局域网即使处在满负荷之下也无法满足
人数众多的学生同时下载。因此萌生使用UDP的广播特性来进行文件传输这一想法。
考虑到操作系统的多样化以及自己一直是在linux环境下成长的，因此跨平台是
这款软件的一个必备要求。

本次设计和实现均在linux下使用开源工具完成意义在于，
在桌面计算机上主流的三种操作系统有linux、Mac和Windows。
国内Windows在过去占据着主导位置，随着苹果这几年的崛起国内IT公司已经开
始注重其他系统平台用户。现在国内很多软件都已经拥有Mac版本，少部分软件
拥有linux版本。而且手机、平板这些便携式电脑已经越来越流行，软件平台早
已不再局限在Windows上。也不会局限在某一特定事物之上。
跨平台不仅仅意味着能在多个系统上运行，同时促使软件开发人员在开发软件时
尽量不用操作系统特性而是使用更具抽象性的工具如C++的boost库。这样能更好
的进行抽象设计，而不用过早陷入细节问题。

本次设计主要是基于以太网的特殊性，在物理层每张网卡都会接收到局域网内所有
的数据\cite{TCP/IP}，UDP本身是不适合进行大文件传输的特别是在互联网上，但合理使用广播或多播
这种利用以太网本身的传输机制进行合理的利用带宽，就可以让这种并发传输
的情况下非常明显的``突破''网络物理限制。
可以节约宝贵的时间，特别是在课堂上。

\section{本文研究的内容和结构}
第2章介绍了开发环境以及开发中使用到的一些技术和工具，包括操作系统平台，
文本编辑器，编译器，项目管理工具和版本控制等。

第3到5章讨论了软件的核心设计包括核心数据结构，发送接收过程。

第6章介绍了用户界面的选择以及介绍了为更好的使用WebPage作为界面而
另行设计的一款HTTP服务器AppWebServer。

第7章介绍了界面的js/html代码部分主要谈论了在使用WebPage时遇到的
一些问题和选择。

第8章简单的介绍了本次测试使用的一些方式。
